A Practical Verification Methodology for Concurrent Programs

نویسندگان

  • Ernie Cohen
  • Michał Moskal
  • Wolfram Schulte
  • Stephan Tobies
چکیده

We describe a methodology for reasoning about realistic concurrent programs. Our methodology allows two-state invariants that span multiple objects without sacrificing threador data-modularity, as well as the derived construction of first-class objects that capture knowledge about the system state. The methodology has been implemented in an automatic sound verifier for concurrent C programs being used to verify the code of the Microsoft Hypervisor, the virtualization kernel of Hyper-V.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

On the Church-Rosser and Coherence Properties of Conditional Order-Sorted Rewrite Theories1

In the effort to bring rewriting-based methods into contact with practical applications both in programing and in formal verification, there is a tension between: (i) expressiveness and generality—so that a wide range of applications can be expressed easily and naturally—, and (ii) support for formal verification, which is harder to get for general and expressive specifications. This paper answ...

متن کامل

Verification of Concurrent Software

Increasing complexity and widespread use of concurrent programs coupled with the pervasion of software systems handling diverse costly, heavily loaded and safety critical equipment has led to the need for benchmarking multithreaded software systems and verification of their reliability. This seminar surveys some of the recent approaches to practical software verification.

متن کامل

Closer to Reliable Software: Verifying Functional Behaviour of Concurrent Programs

Static formal verification techniques are an e↵ective method for verification of software. They exploit the advantages of formal methods to statically prove that the implementation of a program satisfies its formally written specification. This makes formal verification especially powerful: any execution of the program is guaranteed to behave correctly. Therefore, these techniques are especiall...

متن کامل

Verification of Concurrent Programs with Chalice

A program verifier is a tool that allows developers to prove that their code satisfies its specification for every possible input and every thread schedule. These lecture notes describe a verifier for concurrent programs called Chalice. Chalice’s verification methodology centers around permissions and permission transfer. In particular, a memory location may be accessed by a thread only if that...

متن کامل

Verification of Multithreaded Object-Oriented Programs with Invariants

Developing safe multithreaded software systems is difficult due to the potential unwanted interference among concurrent threads. This paper presents a sound, modular, and simple verification technique for multithreaded object-oriented programs with object invariants. Based on a recent methodology for object invariants in single-threaded programs, this new verification technique enables leak-pro...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008